package com.ruoyi.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 租户对象 sys_tenant
 *
 * @author ace
 * @date 2022-10-10
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("sys_tenant")
public class SysTenant extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * 开启
     */
    public static final String ENABLE = "0";
    /**
     * 禁用
     */
    public static final String DISABLE = "1";

    /**
     * 租户id
     */
    @TableId(value = "tenant_id")
    private Long tenantId;
    /**
     * 租户名称
     */
    private String tenantName;
    /**
     * 管理用户id
     */
    private Long userId;
    /**
     * 联系人姓名
     */
    private String contactName;
    /**
     * 联系人电话
     */
    private String contactMobile;
    /**
     * 租户状态（0正常 1停用）
     */
    private String status;
    /**
     * 绑定域名
     */
    private String domain;
    /**
     * 租户套餐id
     */
    private Long packageId;
    /**
     * 过期时间
     */
    private Date expireTime;
    /**
     * 账号数量
     */
    private Long accountCount;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 管理用户名称
     */
    @TableField(exist = false)
    private String userName;
    /**
     * 租户套餐名称
     */
    @TableField(exist = false)
    private String packageName;

    public SysTenant(Long tenantId,String status){
        this.tenantId = tenantId;
        this.status = status;
    }

    public SysTenant(Long tenantId){ this.tenantId = tenantId; }

    public boolean isAdminTenant() {
        return UserConstants.ADMIN_TENANT_ID.equals(this.tenantId);
    }

}
